/
ISourceBlock`1.xml
246 lines (234 loc) · 20.3 KB
/
ISourceBlock`1.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
<Type Name="ISourceBlock<TOutput>" FullName="System.Threading.Tasks.Dataflow.ISourceBlock<TOutput>">
<TypeSignature Language="C#" Value="public interface ISourceBlock<out TOutput> : System.Threading.Tasks.Dataflow.IDataflowBlock" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract ISourceBlock`1<+ TOutput> implements class System.Threading.Tasks.Dataflow.IDataflowBlock" FrameworkAlternate="dotnet-uwp-10.0;net-5.0;netcore-1.0;netcore-1.1;netcore-2.0;netcore-2.1;netcore-2.2;netcore-3.0;netcore-3.1" />
<TypeSignature Language="DocId" Value="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
<TypeSignature Language="VB.NET" Value="Public Interface ISourceBlock(Of Out TOutput)
Implements IDataflowBlock" />
<TypeSignature Language="F#" Value="type ISourceBlock<'Output> = interface
 interface IDataflowBlock" />
<TypeSignature Language="C++ CLI" Value="generic <typename TOutput>
public interface class ISourceBlock : System::Threading::Tasks::Dataflow::IDataflowBlock" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract beforefieldinit ISourceBlock`1<+ TOutput> implements class System.Threading.Tasks.Dataflow.IDataflowBlock" FrameworkAlternate="net-6.0;net-7.0;net-8.0;net-9.0;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1;netstandard-2.0;netstandard-2.1" />
<AssemblyInfo>
<AssemblyName>System.Threading.Tasks.Dataflow</AssemblyName>
<AssemblyVersion>4.5.25.0</AssemblyVersion>
<AssemblyVersion>4.6.0.0</AssemblyVersion>
<AssemblyVersion>4.6.1.0</AssemblyVersion>
<AssemblyVersion>4.6.2.0</AssemblyVersion>
<AssemblyVersion>4.6.3.0</AssemblyVersion>
<AssemblyVersion>4.6.4.0</AssemblyVersion>
<AssemblyVersion>4.6.5.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<TypeParameters>
<TypeParameter Name="TOutput">
<Constraints>
<ParameterAttribute>Covariant</ParameterAttribute>
</Constraints>
<Attributes>
<Attribute FrameworkAlternate="net-8.0;net-9.0">
<AttributeName Language="C#">[System.Runtime.CompilerServices.Nullable(2)]</AttributeName>
<AttributeName Language="F#">[<System.Runtime.CompilerServices.Nullable(2)>]</AttributeName>
</Attribute>
</Attributes>
</TypeParameter>
</TypeParameters>
<Interfaces>
<Interface>
<InterfaceName>System.Threading.Tasks.Dataflow.IDataflowBlock</InterfaceName>
</Interface>
</Interfaces>
<Attributes>
<Attribute FrameworkAlternate="net-8.0;net-9.0">
<AttributeName Language="C#">[System.Runtime.CompilerServices.NullableContext(1)]</AttributeName>
<AttributeName Language="F#">[<System.Runtime.CompilerServices.NullableContext(1)>]</AttributeName>
</Attribute>
</Attributes>
<Docs>
<typeparam name="TOutput">Specifies the type of data supplied by the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />.</typeparam>
<summary>Represents a dataflow block that is a source of data.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
[!INCLUDE [tpl-install-instructions](~/includes/tpl-install-instructions.md)]
]]></format>
</remarks>
</Docs>
<Members>
<Member MemberName="ConsumeMessage">
<MemberSignature Language="C#" Value="public TOutput ConsumeMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<out TOutput> target, out bool messageConsumed);" FrameworkAlternate="dotnet-uwp-10.0;netcore-1.0;netcore-1.1;netcore-2.0;netcore-2.1;netcore-2.2;netcore-3.0;netcore-3.1" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance !TOutput ConsumeMessage(valuetype System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, class System.Threading.Tasks.Dataflow.ITargetBlock`1<!TOutput> target, [out] bool& messageConsumed) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Threading.Tasks.Dataflow.ISourceBlock`1.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Boolean@)" />
<MemberSignature Language="VB.NET" Value="Public Function ConsumeMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of Out TOutput), ByRef messageConsumed As Boolean) As TOutput" />
<MemberSignature Language="F#" Value="abstract member ConsumeMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'Output> * bool -> 'Output" Usage="iSourceBlock.ConsumeMessage (messageHeader, target, messageConsumed)" />
<MemberSignature Language="C#" Value="public TOutput? ConsumeMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<out TOutput> target, out bool messageConsumed);" FrameworkAlternate="net-5.0;net-6.0;net-7.0;net-8.0;net-9.0;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1;netstandard-2.0;netstandard-2.1" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Threading.Tasks.Dataflow</AssemblyName>
<AssemblyVersion>4.5.25.0</AssemblyVersion>
<AssemblyVersion>4.6.0.0</AssemblyVersion>
<AssemblyVersion>4.6.1.0</AssemblyVersion>
<AssemblyVersion>4.6.2.0</AssemblyVersion>
<AssemblyVersion>4.6.3.0</AssemblyVersion>
<AssemblyVersion>4.6.4.0</AssemblyVersion>
<AssemblyVersion>4.6.5.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>TOutput</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="messageHeader" Type="System.Threading.Tasks.Dataflow.DataflowMessageHeader" />
<Parameter Name="target" Type="System.Threading.Tasks.Dataflow.ITargetBlock<TOutput>" />
<Parameter Name="messageConsumed" Type="System.Boolean" RefType="out" />
</Parameters>
<Docs>
<param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message being consumed.</param>
<param name="target">The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> consuming the message.</param>
<param name="messageConsumed">
<see langword="true" /> if the message was successfully consumed; otherwise, <see langword="false" />.</param>
<summary>Called by a linked <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to accept and consume a <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> previously offered by this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />.</summary>
<returns>The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and passed as the <paramref name="messageHeader" /> to <see cref="M:System.Threading.Tasks.Dataflow.ISourceBlock`1.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Boolean@)" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must use the returned value instead of the value passed as <paramref name="messageValue" /> through <see cref="M:System.Threading.Tasks.Dataflow.ITargetBlock`1.OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)" />.
If the message requested is not available, the return value will be null.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Only <xref:System.Threading.Tasks.Dataflow.ITargetBlock%601> instances linked to this <xref:System.Threading.Tasks.Dataflow.ISourceBlock%601> instance may use <xref:System.Threading.Tasks.Dataflow.ISourceBlock%601.ConsumeMessage%2A>, and it must only be used to consume <xref:System.Threading.Tasks.Dataflow.DataflowMessageHeader> instances previously offered by this source to the target.
]]></format>
</remarks>
<exception cref="T:System.ArgumentException">The messageHeader is not valid.</exception>
<exception cref="T:System.ArgumentNullException">The target is <see langword="null" />.</exception>
</Docs>
</Member>
<Member MemberName="LinkTo">
<MemberSignature Language="C#" Value="public IDisposable LinkTo (System.Threading.Tasks.Dataflow.ITargetBlock<out TOutput> target, System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.IDisposable LinkTo(class System.Threading.Tasks.Dataflow.ITargetBlock`1<!TOutput> target, class System.Threading.Tasks.Dataflow.DataflowLinkOptions linkOptions) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Threading.Tasks.Dataflow.ISourceBlock`1.LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Threading.Tasks.Dataflow.DataflowLinkOptions)" />
<MemberSignature Language="VB.NET" Value="Public Function LinkTo (target As ITargetBlock(Of Out TOutput), linkOptions As DataflowLinkOptions) As IDisposable" />
<MemberSignature Language="F#" Value="abstract member LinkTo : System.Threading.Tasks.Dataflow.ITargetBlock<'Output> * System.Threading.Tasks.Dataflow.DataflowLinkOptions -> IDisposable" Usage="iSourceBlock.LinkTo (target, linkOptions)" />
<MemberSignature Language="C++ CLI" Value="public:
 IDisposable ^ LinkTo(System::Threading::Tasks::Dataflow::ITargetBlock<TOutput> ^ target, System::Threading::Tasks::Dataflow::DataflowLinkOptions ^ linkOptions);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Threading.Tasks.Dataflow</AssemblyName>
<AssemblyVersion>4.5.25.0</AssemblyVersion>
<AssemblyVersion>4.6.0.0</AssemblyVersion>
<AssemblyVersion>4.6.1.0</AssemblyVersion>
<AssemblyVersion>4.6.2.0</AssemblyVersion>
<AssemblyVersion>4.6.3.0</AssemblyVersion>
<AssemblyVersion>4.6.4.0</AssemblyVersion>
<AssemblyVersion>4.6.5.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.IDisposable</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="target" Type="System.Threading.Tasks.Dataflow.ITargetBlock<TOutput>" />
<Parameter Name="linkOptions" Type="System.Threading.Tasks.Dataflow.DataflowLinkOptions" />
</Parameters>
<Docs>
<param name="target">The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.</param>
<param name="linkOptions">A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.</param>
<summary>Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.</summary>
<returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns>
<remarks>To be added.</remarks>
<exception cref="T:System.ArgumentNullException">
<paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).</exception>
</Docs>
</Member>
<Member MemberName="ReleaseReservation">
<MemberSignature Language="C#" Value="public void ReleaseReservation (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<out TOutput> target);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void ReleaseReservation(valuetype System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, class System.Threading.Tasks.Dataflow.ITargetBlock`1<!TOutput> target) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Threading.Tasks.Dataflow.ISourceBlock`1.ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})" />
<MemberSignature Language="VB.NET" Value="Public Sub ReleaseReservation (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of Out TOutput))" />
<MemberSignature Language="F#" Value="abstract member ReleaseReservation : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'Output> -> unit" Usage="iSourceBlock.ReleaseReservation (messageHeader, target)" />
<MemberSignature Language="C++ CLI" Value="public:
 void ReleaseReservation(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<TOutput> ^ target);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Threading.Tasks.Dataflow</AssemblyName>
<AssemblyVersion>4.5.25.0</AssemblyVersion>
<AssemblyVersion>4.6.0.0</AssemblyVersion>
<AssemblyVersion>4.6.1.0</AssemblyVersion>
<AssemblyVersion>4.6.2.0</AssemblyVersion>
<AssemblyVersion>4.6.3.0</AssemblyVersion>
<AssemblyVersion>4.6.4.0</AssemblyVersion>
<AssemblyVersion>4.6.5.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="messageHeader" Type="System.Threading.Tasks.Dataflow.DataflowMessageHeader" />
<Parameter Name="target" Type="System.Threading.Tasks.Dataflow.ITargetBlock<TOutput>" />
</Parameters>
<Docs>
<param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message being released.</param>
<param name="target">The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> releasing the message it previously reserved.</param>
<summary>Called by a linked <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to release a previously reserved <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> by this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Only <xref:System.Threading.Tasks.Dataflow.ITargetBlock%601> instances linked to this <xref:System.Threading.Tasks.Dataflow.ISourceBlock%601> instance may use `ReleaseReservation`, and it must only be used to release <xref:System.Threading.Tasks.Dataflow.DataflowMessageHeader> instances previously and successfully reserved by the target.
]]></format>
</remarks>
<exception cref="T:System.ArgumentException">The <paramref name="messageHeader" /> is not valid.</exception>
<exception cref="T:System.ArgumentNullException">The <paramref name="target" /> is <see langword="null" />.</exception>
<exception cref="T:System.InvalidOperationException">The <paramref name="target" /> did not have the message reserved.</exception>
</Docs>
</Member>
<Member MemberName="ReserveMessage">
<MemberSignature Language="C#" Value="public bool ReserveMessage (System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, System.Threading.Tasks.Dataflow.ITargetBlock<out TOutput> target);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool ReserveMessage(valuetype System.Threading.Tasks.Dataflow.DataflowMessageHeader messageHeader, class System.Threading.Tasks.Dataflow.ITargetBlock`1<!TOutput> target) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Threading.Tasks.Dataflow.ISourceBlock`1.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})" />
<MemberSignature Language="VB.NET" Value="Public Function ReserveMessage (messageHeader As DataflowMessageHeader, target As ITargetBlock(Of Out TOutput)) As Boolean" />
<MemberSignature Language="F#" Value="abstract member ReserveMessage : System.Threading.Tasks.Dataflow.DataflowMessageHeader * System.Threading.Tasks.Dataflow.ITargetBlock<'Output> -> bool" Usage="iSourceBlock.ReserveMessage (messageHeader, target)" />
<MemberSignature Language="C++ CLI" Value="public:
 bool ReserveMessage(System::Threading::Tasks::Dataflow::DataflowMessageHeader messageHeader, System::Threading::Tasks::Dataflow::ITargetBlock<TOutput> ^ target);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Threading.Tasks.Dataflow</AssemblyName>
<AssemblyVersion>4.5.25.0</AssemblyVersion>
<AssemblyVersion>4.6.0.0</AssemblyVersion>
<AssemblyVersion>4.6.1.0</AssemblyVersion>
<AssemblyVersion>4.6.2.0</AssemblyVersion>
<AssemblyVersion>4.6.3.0</AssemblyVersion>
<AssemblyVersion>4.6.4.0</AssemblyVersion>
<AssemblyVersion>4.6.5.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="messageHeader" Type="System.Threading.Tasks.Dataflow.DataflowMessageHeader" />
<Parameter Name="target" Type="System.Threading.Tasks.Dataflow.ITargetBlock<TOutput>" />
</Parameters>
<Docs>
<param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message being reserved.</param>
<param name="target">The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> reserving the message.</param>
<summary>Called by a linked <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to reserve a previously offered <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> by this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />.</summary>
<returns>
<see langword="true" /> if the message was successfully reserved; otherwise, <see langword="false" />.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Only <xref:System.Threading.Tasks.Dataflow.ITargetBlock%601> instances linked to this <xref:System.Threading.Tasks.Dataflow.ISourceBlock%601> instance may use <xref:System.Threading.Tasks.Dataflow.ISourceBlock%601.ReserveMessage%2A>, and it must only be used to reserve <xref:System.Threading.Tasks.Dataflow.DataflowMessageHeader> instances previously offered by this source to the target.
If `true` is returned, the <xref:System.Threading.Tasks.Dataflow.ITargetBlock%601> must subsequently call either <xref:System.Threading.Tasks.Dataflow.ISourceBlock%601.ConsumeMessage%2A> or <xref:System.Threading.Tasks.Dataflow.ISourceBlock%601.ReleaseReservation%2A> for this message. Failure to do so may result in the source being unable to propagate any further messages to this or other targets.
<xref:System.Threading.Tasks.Dataflow.ISourceBlock%601.ReserveMessage%2A> must not be called while the target is holding any internal locks. Doing so will violate the lock hierarchy necessary to avoid deadlocks in a dataflow network.
]]></format>
</remarks>
<exception cref="T:System.ArgumentException">The <paramref name="messageHeader" /> is not valid.</exception>
<exception cref="T:System.ArgumentNullException">The <paramref name="target" /> is <see langword="null" />.</exception>
</Docs>
</Member>
</Members>
</Type>